Prep the basics: Heat oven to 350°F (175°C). Line a 12-cup muffin pan with paper liners.
Stir the coconut milk until smooth.
Whisk dry ingredients: In a bowl, whisk flour, baking powder, and salt. Set aside.
Cream butter and sugar: In a large bowl, beat butter and sugar on medium-high until pale and fluffy, about 3 minutes.
Add eggs and flavor: Beat in eggs one at a time, then mix in vanilla, coconut extract (if using), and lime zest. Scrape bowl as needed.
Combine wet and dry: On low speed, add half the dry mix, then the coconut milk and regular milk.
Add remaining dry mix and beat just until combined. Fold in shredded coconut. The batter should be thick but scoopable.
Fill and bake: Divide batter among liners, filling each about 2/3 full.
Bake 16–20 minutes, until tops spring back and a toothpick comes out clean.
Cool completely: Let cupcakes cool in the pan 5 minutes, then move to a rack to cool fully before frosting.
Make the buttercream: Beat butter until creamy, 1 minute. Add 2 1/2 cups powdered sugar, lime zest, 2 tbsp lime juice, and a pinch of salt. Beat until fluffy, adding more lime juice or milk for a softer texture and more powdered sugar for a stiffer one.
Frost and garnish: Swirl or pipe frosting onto cooled cupcakes.
Top with extra coconut or a sprinkle of lime zest.