Preheat the oven to 350°F. For the cake, coat three 9-inch round baking pans with cooking spray and then dust them with flour. Tap out the excess flour.
Using an electric mixer fitted with a paddle attachment, cream the butter and sugar on medium speed until light and fluffy, about 10 minutes.
Combine the flour, baking powder, and salt in a separate bowl and set it aside.
Put the mixer on low speed and add the eggs, one at a time, scraping the sides and bottom of the bowl after each addition. With the machine still running, add the flour mixture, buttermilk, and sour cream to the batter in thirds, beginning and ending with the dry ingredients. Add the extracts; scrape the sides and bottom of the bowl to ensure even mixing.
Divide the batter evenly among the prepared pans, smoothing the tops with an offset spatula or the back of a spoon. Bake on the middle rack of the oven until the top of each cake layer is firm and a wooden pick inserted in the center comes out clean, 15 to 20 minutes.
During the baking, make the icing: Using an electric mixer fitted with a paddle attachment, cream the butter and cream cheese on medium speed until light and fluffy, 2 to 3 minutes. Reduce the speed to low and add the extracts; mix until smooth. Add the sugar, ½ cup at a time, and mix after each addition until smooth and creamy.
When the cake layers are done, remove them from the pans and place them on wire racks to cool completely before assembling and icing.
To assemble, place one cake layer, top side down, on a serving dish. Use an offset spatula to spread about ½ cup of the icing in an even layer over the top of the cake; scatter ½ cup of coconut on top. Repeat by adding the second and third layers, with the same amount of icing and coconut used on the first. Spread the remaining icing on the sides of the cake. Use your hands to gently press the remaining coconut onto the sides.
Tip: Out of buttermilk? Use this method to whip up a good substitute. Start with just under 1 cup of milk in a liquid measuring cup. Add 1 tablespoon of white vinegar or lemon juice. Add enough milk to raise the mixture to the 1-cup line of the measuring vessel and let it stand for 5 minutes. Use in your recipe.