Amaretto cupcakes are frosted with a tall mound of coconut whipped cream and covered with a flurry of shaved coconut. Each cupcake has a hidden cherry inside! Plan ahead. The coconut milk needs to chill for several hours or overnight before using it as a frosting ingredient.
Preheat oven to 350°F. Prepare a cupcake pan with cupcake liners and set aside.
In a large mixing bowl, cream butter and sugar together until light and fluffy, about 3-4 minutes. Add sour cream until well combined. Add egg whites, one at a time, mixing until well combined after each addition. Scrape down the sides of the bowl to be sure all the ingredients are well incorporated.
Combine the flour, baking powder and salt in a separate bowl, then combine milk, amaretto, and extract together in a small measuring cup. Add half of the dry ingredients to the creamed butter mixture and mix until just combined. Add the milk mixture and mix until well. Add the remaining flour mixture and beat until combined; scrape down the sides of the bowl to make sure that all the ingredients are well incorporated.
Fill the prepared pan and insert a maraschino cherry into the centers of each cupcake (use a spoon handle to poke them down into the batter). Bake for 15-17 minutes, or until a toothpick inserted comes out clean. Let cupcakes cool in the pan about 5 minutes, then remove to a wire rack to cool completely before frosting.
For the frosting, scoop the coconut solids from the chilled cans and save the liquid for another use. Place the coconut solids in the bowl of an electric mixer fitted with the whip attachment. Beat on medium speed while adding the sugar gradually. Increase the speed to high and beat until fluffy. Beat in the coconut extract. Transfer the whipped coconut to a piping bag fitted with a 1/2-inch hole snipped in the end. Pipe mounds of frosting on the cooled cupcakes and immediately top with shaved coconut. Serve immediately.