Preheat oven to 350°F. Line standard muffin tins with paper liners.
Whisk together flour, baking powder, and salt. Pulse shredded coconut in a food processor until finely ground, and whisk into flour mixture.
With an electric mixer on medium-high speed, cream butter and sugar until pale and fluffy. Gradually beat in whole eggs, whites and vanilla, scraping down sides of bowl as needed. Reduce speed to low. Add flour mixture in three batches, alternating with two additions of coconut milk, and beating until combined after each.
Divide batter evenly among lined cups, filling eat three-quarters full. Bake, rotating tins halfway through, until a cake tester inserted in centers come out clean, about 20 minutes. Remove from oven; turn out cupcakes onto wire racks and let cool completely. Cupcakes can be stored overnight at room temperature, or freeze up to 2 months, in airtight containers.
To finish, use a small offset spatula to spread a generous dome of icing onto each cupcake, and, if desired, garnish with flaked coconut. Store at room temperature until ready to serve.
Icing: Use your favourite buttercream vanilla icing. I like to use a splash of coconut milk rather than plain milk. If you don’t normally add milk to your icing, you can cut down slightly on the butter and replace with coconut milk.
An easy buttercream recipe: Whip 1/2 cup softened butter until creamy then mix in 2 cups confectioners' sugar. Add 1 tablespoon milk or coconut milk and 1 teaspoon vanilla extract. Mix and then add an additional 2 cups confectioners' sugar and whip. Add an additional tablespoon of milk or coconut milk. Whip another minute and add additional milk as necessary to achieve your desired consistency. I like my frosting on the stiff side for piping swirls.