1. Make cake: Place a rack in center of oven and preheat to 350ºF. Grease and flour 2 9-inch round cake pans.
2. In a bowl, whisk flour, baking soda, baking powder and salt. Using an electric mixer on medium-high speed, beat butter and sugar until light, about 3 minutes. Beat in eggs 1 at a time. Reduce speed to low; beat in half of flour mixture. Beat in coconut milk and extract, then beat in remaining flour mixture until just combined. Divide batter between cake pans and bake until a toothpick inserted into center comes out clean, about 30 minutes. Let cakes cool in pans on wire racks for 10 minutes. Turn out onto racks to cool completely.
3. Make frosting: Using an electric mixer on medium-high speed, beat butter until light, 2 to 3 minutes. Reduce mixer speed to low and gradually beat in sugar until fully incorporated. Beat in extracts. Chill 15 minutes.
4. Assemble cake: Place 1 cake layer on a serving platter. Spread with 1 1/2 cups frosting. Sprinkle with 1/2 cup coconut. Top with second cake layer. Spread remaining frosting on top and sides. Sprinkle remaining coconut over top and sides of cake, pressing to adhere. Chill for at least 2 hours and up to a day. Remove from refrigerator 30 minutes before serving.