Preheat oven to 190°C and line 2 muffin tins with 18 paper cups.
Sift the flour, 1/2 cup of sugar, brown sugar, baking powder, salt and spices into a large mixing bowl.
Make a well in the center of the flour mixture and add the oil, buttermilk, molasses and vanilla. Beat one minute with electric beaters. Add the egg yolks and beat another minute.
In a separate bowl and using cleaned beaters, whip the egg whites until foamy. Gradually pour in remaining the 1/2 cup sugar and whip until the whites hold a stiff peak. Fold the whites gently into batter and spoon into muffin cups.
Bake 15 to 18 minutes or until cupcakes spring back when pressed. Allow to cool.
For the icing, beat the butter until fluffy. On low speed beat in half of the icing sugar, and then add the coconut milk. Beat in the vanilla and coconut extract (if using) and beat in the remaining icing sugar. If the icing is too thin, add a touch more icing sugar, and if too thick add a touch more coconut milk. Spread icing onto cupcakes and garnish with shredded coconut.
For an attractive alternate garnish, use a vegetable peeler to peel large coconut curls from the meat of a fresh coconut (shelled). Place curls on a parchment-lined baking tray, dust generously with icing sugar and bake in a 350 F (180 C) oven for 10 minutes. Cool and garnish cupcakes.
NOTE: The use of extract like coconut or rum flavouring is purely a matter of taste. Since these are flavourings, and not natural extracts, they can sometimes overwhelm a dessert (in the case of coconut extract, too much can make a dish smell like suntan lotion).