Preheat oven to 350 degree, then grease and flour 2x 8" or 9" pans (or one 9x13" sheet pan). Add vanilla and coconut extracts to milk and set aside. Sift flour, salt and baking powder together and set aside.
Cream butter with mixer for 30 seconds, then gradually add sugar and mix on medium speed for 5 minutes. Beat egg yolks and add to butter mixture. Add flour and milk alternately to butter mix, stirring after each addition, until smooth. Stir in coconut.
With clean, dry beaters, beat egg whites until stiff but not dry. Gently fold into batter. Turn into pan(s), baking 25 minutes for 8" round or square pans. Cool in pans for 10 minutes, then invert onto racks and cool completely before frosting.
For frosting, soak coconut in milk. Beat butter with mixer on medium for 30 seconds. Add 1/2 of sugar, beat well. Drain coconut and add milk to butter mixture, beating well. Gradually add remaining sugar until desired consistency. Blend in extracts and coconut. Frost cake and cover with as much coconut flakes as the cake will hold.