Start by toasting the coconut. Preheat oven to 325°F. Spread 2 cups of sweetened coconut on a baking sheet covered with a silpat mat or parchment paper. Place in the middle rack of the oven and bake for 4 minutes. Remove from oven and stir with a spatula. Place back in the oven for 5-6 more minutes or until golden brown. Set aside.
To make the cupcakes, preheat the oven to 350°F. Line a 12-cup muffin pan with cupcake liners. Set aside.
Whisk the flour, baking powder, and salt together in a large bowl. Set aside.
With a handheld or stand mixer fitted with a paddle attachment, beat the oil while slowly adding the sugar, beat for about 2 mins. With the mixer running on low speed, add the eggs one at a time, then add the vanilla. Beat on medium-high speed until combined. Scrape down the sides and up the bottom of the bowl as needed.
With the mixer running on low speed, slowly add half of the dry ingredients. Mix until just combined then add half of the coconut milk. Repeat with the remaining dry ingredients and coconut milk. Increase speed to medium and add the lime juice and lime zest.
Spoon the batter into the prepared liners until 1/2 - 2/3 full. Bake for 16-18 minutes, or until a toothpick inserted in the centre comes out clean. Allow the cupcakes to cool completely before frosting.
To make the frosting, in a large bowl using a handheld or stand mixer fitted with a whisk attachment, beat the butter on high speed until completely smooth and creamy, approximately 2-3 minutes. Add the powdered sugar 1 cup at a time, beating on low at first then increasing to high speed until completely incorporated. Once all powdered sugar has been added, beat in the vanilla extract, coconut vinegar, lime juice and lime zest.
Once they are cool, frost the cupcakes. If using, sprinkle the toasted coconut on top just before serving.
This recipe makes a lightly frosted cupcake. Adjust amounts upwards if you want more frosting!