Grease and flour cake pans (2 8″ or 9″ rounds, or a 13×9″ pan). Place parchment in the bottom of the rounds, if using. Heat oven to 350°F.
In a medium bowl, sift together flour, baking powder and salt.
In another bowl, beat together oil and 1 1/2 cups of the sugar until light and fluffy. Beat in vanilla and coconut extracts. Add flour and milk, alternating between the two in small additions. Beat until blended.
In the bowl of a stand mixer, or in a large bowl with a hand mixer, beat egg whites until stiff peaks form. Add remaining 2 tbsp sugar and beat until incorporated. Gently stir egg whites into batter.
Pour batter into prepared pans. Bake 35-50 minutes, or until toothpick inserted into the center comes out clean. Cool 10 minutes before removing cakes from pans (if using rounds) to cool completely.
To make the frosting, prepare a double broiler by filling a small saucepan with about 2 inches of water and bringing to a gentle simmer.
In a heatproof bowl, mix sugar, water, egg whites, and cream of tartar on low speed for about 30 seconds to combine. Place bowl on top of saucepan. The water in the saucepan should not touch the bowl. Beat mixture on high speed for 7 minutes, or until it is stiff and shiny. Remove from heat, add vanilla, and beat until vanilla is incorporated.
To make the frosting in a stand mixer instead of a double broiler, heat sugar and water in a small saucepan on the stove. Bring to a boil, then turn heat down and simmer for 3 minutes. Meanwhile, beat egg whites and cream of tartar to combine. Slowly pour sugar mixture into egg whites while the mixer is running on high. Beat until stiff peaks form and mixture is shiny. Mix in vanilla until completely incorporated.
Frost completely cooled as soon as frosting is done, as it will firm up upon standing.
Gently press coconut into the frosting to coat the cake.
**Use non-dairy milk, such as almond milk, for dairy-free option.