Grease and line 3 9-inch round cake tins with parchment paper.
Preheat the oven to 350 degrees F.
Whisk the flour, sugar, baking powder, and salt in a large mixing bowl.
Add the melted butter, vanilla, and 2/3 of the milk, and using a hand mixer on low speed, beat for 2 minutes.
Add the remaining milk and the egg whites, and beat until combined, about 2 minutes.
Divide the batter evenly between the three layers and bake for 18-20 minutes. A toothpick should come out clean and top will begin to brown in places.
While the cakes bake, make the thickened milk for the frosting.
In a saucepan, whisk the milk and flour over medium heat until it thickens to glue consistency. Let it cool
After the cakes are finished allow them to cool in the pans for 5 minutes and then turn them out onto a wire rack to finish cooling.
While the cakes cool, finish making the frosting.
In a large bowl, beat the softened butter and sugar for 5-6 minutes until fluffy. Add the vanilla, and thickened milk mixture and beat for another 4 minutes until all combined and fluffy.
Frost the top of one layer, add the next, and frost the top of it, and then add the final layer and frost the top and around the cake. Carefully add the shredded coconut to the top and sides of the cake, completely covering the frosting.
Refrigerate for 30 minutes before serving allowing the coconut and frosting to set up a bit.