Be careful not to reduce the coconut milk beyond 1 ½ cups or the solids will start to separate from the fat. The reduced coconut milk can be refrigerated for several days.
2 cans (14 ounces each) regular (not light!) coconut milk
For the cake
2 cups all-purpose flour
3 tablespoons cornstarch
3 ¼ teaspoons baking powder
½ teaspoon salt
12 tablespoons (1 ½ sticks) unsalted butter, softened
1 ½ cups granulated sugar
3 large eggs
½ teaspoon vanilla extract
1 cup reduced coconut milk (see above)
For the frosting
3 cups sweetened flaked coconut
2 sticks unsalted butter, softened
4 cups (about 1 pound) confectioner’s sugar
¼ cup reduced coconut milk (see above)
1 ½ teaspoons vanilla extract
Bring coconut milk to boil in a medium saucepan over medium-high heat. Reduce heat to medium and cook, whisking often, until reduced to 1 ½ cups. Cool to room temperature.
For the cake: adjust oven rack middle position and heat the oven to 350 degrees. Grease and flour two 8-inch cake pans. Mix flour, cornstarch, baking powder, and salt in a medium bowl. With an electric mixer, beat butter in a large bowl until fluffy. Add sugar; beat until well mixed. Beat in eggs, one at a time and then vanilla, scraping down sides of the bowl as needed. Beat in half the flour mixture, then the reduced coconut milk and finally the remaining flour mixture, scraping down the bowl again, until just smooth.
Divide batter evenly between prepared pans; bake until golden brown and a toothpick inserted into cake center comes out clean, 30 to 35 minutes. Transfer to a wire rack; let cool for 5 minutes. Remove cakes from pans and return to wire rack to cool completely.
For the frosting: reduce oven temperature to 325 degrees. Spread coconut on a 13- by 9-inch baking sheet; toast, stirring occasionally, until flakes are dry and some are light golden, about 20 minutes.
With an electric mixture beat butter in a large bowl until smooth. Slowly beat in sugar until well combined. Beat in coconut milk, vanilla, and salt until smooth.
Assemble the cake: Place a cake layer (top-side down) on a cake stand lined with strips of parchment paper (to keep it clean while icing). Using a knife or offset spatula, spread about 1/3 of the frosting over cake top; sprinkle generously with coconut. Place the next layer (top-side up) over the first. Spread remaining frosting evenly on cake top and sides. Sprinkle top generously with coconut. Using an opened hand, gently press remaining coconut around cake perimeter. Remove parchment strips; refrigerate cake until frosting sets, about 30 minutes. Slice and serve.