Preheat oven to 350°F. Line a cupcake pan with paper cupcake liners and set aside.
Using a hand mixer or stand mixer fitted with the paddle attachment, beat the butter and sugar until creamy and light. Add egg whites, egg, vanilla extract, and coconut extract and beat again, stopping to scrape the bottom and sides of the bowl.
1/2 cup salted butter, 1 cup granulated sugar, 2 large egg whites, 1 whole large egg, 1 teaspoon vanilla extract, 1/2 teaspoon coconut extract
Add flour, baking powder, baking soda, and salt. Mix on low speed just until combined.
1 1/2 cups all-purpose flour, 1 teaspoon baking powder, 1/2 teaspoon baking soda, 1/4 teaspoon salt
Add coconut milk and sour cream, mixing on low speed and stopping again to scrape the bottom and sides of the bowl. Stir in the sweetened shredded coconut until evenly dispersed throughout the batter.
1/2 cup coconut milk, 1/4 cup sour cream, 1/2 cup sweetened shredded coconut
Fill cupcake liners 2/3 full about bake for 18-22 minutes. To test for doneness, bounce a finger lightly on the top of the cupcakes. If it bounces right back, the cupcakes are done. If it leaves an indentation, they may need to bake for another minute or two longer. Cool completely before frosting.
To make the frosting, beat the softened butter and cream cheese until creamy and smooth. Add the powdered sugar, vanilla extract, coconut extract, and almond extract, then beat again for 2-3 minutes until light. Add heavy cream or milk only as needed to reach a spreadable consistency.
3/4 cup salted butter, 4 ounces cream cheese, 3 cups powdered sugar, 1 teaspoon vanilla extract, 1/2 teaspoon coconut extract, 1/4 teaspoon almond extract, 1-2 Tablespoons heavy cream or milk
Top each cooled cupcake with a generous amount of frosting, then press the frosting into shredded coconut to decorate. Enjoy!
1 cup sweetened shredded coconut