Preheat the oven to 350F/177C and line a cupcake pan with liners.
Into a large mixing bowl, add the softened butter and sugar. Whisk on medium to high speed for 2 to 3 minutes until the mixture is fluffy. Add the extracts and eggs and whisk again for another 2 to 3 minutes, until the mixture is smooth. Pour in the milk but don't mix it in.
In a separate bowl, combine the dry ingredients: flour, baking powder and salt. Sift the dry ingredients into the cake batter, then use a hand whisk or spatula to mix in the flour. Don't over mix the batter; stir just until the flour is incorporated. If adding coconut flakes, add them into the batter at this time.
Fill the cupcake liners with cake batter almost to the top, about 3/4 of the way full. Bake the cupcakes in the preheated oven for 24 to 26 minutes, until the tops are golden brown and a toothpick inserted into the center comes out clean. Allow the cupcakes to cool completely on a wire rack before frosting!
As the cupcakes are cooling, prepare the Italian Meringue Buttercream; I have the video recipe linked above. Toast the 1/2 cup coconut flakes on the stove top or in the oven. If using stove, place the coconut flakes into a fry pan and heat over medium heat, tossing occasionally, until the flakes are toasted. If using oven, spread the flakes on a baking sheet and turn the broiler to 'high'. Toast for a few minutes, tossing occasionally.
Once cupcakes have cooled, transfer the coconut buttercream into a pastry bag tipped with a star tip; I used Ateco tip #847. Pipe generous dollops of frosting on top and garnish with toasted coconut flakes.
For Italian Meringue Buttercream:
Before starting on this buttercream, it's crucial that your mixing bowl is super clean; otherwise, the egg whites will fall flat. Make sure to wash your mixing bowl with degreasing soap and white vinegar to rid of any residual grease.
Place the egg whites into the stand mixer bowl and whisk on high speed for 2 to 3 minutes, just until stiff peaks form; set aside. Into a separate sauce pan, add the sugar and water but do not stir! Cook the sugar over medium heat until it reaches soft ball stage or 238F, about 7 minutes. With the mixer running on medium speed, immediately pour the hot sugar syrup in a slow and steady stream into the egg whites.
Once all the syrup has been added, turn the mixer from medium speed to high and continue whisking for 6 to 7 minutes. The egg whites will be super fluffy, firm and will be slightly shiny. Test the temperature of the bowl before adding the butter. Place your wrist against the bottom of the bowl; when it's just lukewarm, begin adding the butter.
Add the softened butter 1 to 2 tablespoons at a time, with 10 to 15 seconds between additions. Scrape down the sides of the mixing bowl often to get everything incorporated. Once all the butter has been added, the buttercream will become more smooth. Turn the mixer to high speed and whisk for another 4 to 5 minutes. Add any extracts, chocolate or flavorings at this time.