If necessary, heat the coconut oil in a pan. While the oil is still warm, add the sugar.
Add the coconut milk, egg, vanilla extract, coconut extract, and lime zest. Make sure the mixture is cool enough before you add the egg.
Add flour, baking soda, baking powder, salt, and shredded coconut.
Fill a cupcake lined cupcake tin about 3/4 of the way. (This recipe makes a dozen.) Bake for 24 minutes.
Let cool before frosting.
To make the frosting, beat the shortening and margarine until smooth, then add sugar and beat. Add vanilla and lime juice and beat until smooth and fluffy. If the frosting becomes too soft on a hot summer day, stick it in the fridge for 30 minutes to get a texture that is easier to frost with.
I like to dump a load of frosting on top and then place the flaked coconut on top by hand (so that they don't break). Add a slice of lime on top to make them look really cute.