Preheat oven to 350 degrees F. Line 12 cupcake cups with paper liners.
Mix the flour, baking powder and salt in a bowl and set aside.
In a mixing bowl, using an electric mixer, beat the butter and sugar for about five minutes. Add the eggs, one at a time, beating well after each egg. Add the vanilla and beat well.
With a spoon or heavy duty scraper, stir in half the flour mixture. When flour is blended, stir in the coconut milk. Stir until blended, then add the rest of the flour mixture and stir until smooth.
Divide evenly among cupcake cups and bake for about 22 minutes or until cupcakes spring back when touched.
To make the icing, put the sugar, water, egg whites and cream of tartar in the top of a double boiler. Alternatively, you can use a metal bowl and set it over simmering water. Using handheld electric mixer, beat on high until foamy (about 1 minute). Place the top part of the double boiler (or bowl) over simmering water and beat on high speed for about 7 minutes or until frosting holds firm peaks. Remove from heat and stir in extracts. Beat another two minutes.
Put large spoonfuls of icing on the cupcakes. Sprinkle generously with the coconut.
Notes
To toast the coconut, lay it on a cookie sheet covered in foil. Bake at 350 for about 5 minutes or just until the coconut around the edges starts to brown. Mix all the brown coconut with the white coconut and let it cool.