In a food processor, pulse the coconut flakes 10 times to slightly break up the strands. Set aside.
In a medium saucepan over medium heat, combine the coconut milk, 1/4 cup (50g) of the sugar, salt, vanilla, and coconut extract and cook, stirring, nutil it simmers.
In a medium bowl, whisk together the cornstarch and remaining 1/4 cup (50g) sugar. Add the egg yolks and whisk into a smooth paste.
Whisk enough of the hot milk, a little at a time, into the egg mixture until it is warm to the touch. Once the eggs are tempered, pour the mixture back into the remaining milk in the pan.
Return the saucepan to medium-high heat and bring the mixture to a boil; continuously whisk for 3 minutes more or the pastry cream will separate once it cools. After 3 minutes, whisk in the butter and coconut flakes.
Pour the pastry cream into a shallow container and cover with plastic wrap, pressed directly onto the surface, to prevent a skin from forming.
In a large bowl, add enough ince cubes and cold water to create a bath for the container to sit in without the water breaching the sides.
Set the container in the ice bath or place in the freezer until chilled, about 15 minutes before using. Or transfer to an airtight container and store in the refrigerator for up to 3 days.
Stir the pastry cream to loosen, then mix in one-third of the whipped cream to lighten. Fold in the remaining whipped cream.
Using an offset spatula, spread half of the pastry cream over the cake; making sure not to go quite to the edge. Top with the next cake layer. Gently press down on the cake to make sure it is sitting snugly on the pastry cream. Spread with the remaining pastry cream and top with the final cake layer. If the pastry cream goes beyond the edge, clean it up with a metal decorating spatula. Make sure the layers are straight. Cover with plastic wrap and refrigerate for about 1 hour to to set the pastry cream.