Preheat the oven to 350 degrees and grease an 8 inch square cake pan or 9 inch round pan.
To prepare the sponge cake, sift the flour and baking powder into a small mixing bowl.
Using an electric mixer, beat the eggs and yolks at high speed for about 4 minutes, or until thick.
Gradually add the sugar to the eggs and beat at medium speed for 4 or 5 minutes, until light and fluffy.
Add the flour mixture to the eggs and beat at medium-low speed until just combined.
Put the water and butter in a saucepan and stir over medium heat until the butter melts. Add to the batter and beat until combined.
Pour the batter into the prepared baking pan. Bake in the over for 20 to 25 minutes, or until an inserted toothpick come out clean.
Let the cake cool in the pan briefly, then remove and cool on a wire rack. Cover with plastic wrap or foil and place in the freezer, preferably overnight.
To prepare the haupia, place the coconut milk, 1 cup of the water and the sugar in a saucepan and bring to a boil.
Mix the cornstarch and the remaining 1 cup of water together in a bowl, add to the pan, and stir until the mixture returns to a boil and thickens. Remove from the heat and keep warm in a double boiler.
Remove the sponge cake from the freezer and cut a thin slice off the top to level off the cake. Slice the cake in half horizontally to make two even layers. Pour the haupia over the bottom layer, to a thickness of about ½ inch.
Place the top layer of cake over the haupia, gently pressing down. Pour more of the haupia over the top of the cake, using a spatula (or chill it in a small shallow pan, cut it into squares, and serve with the cake - or eat it before your company arrives!).
Refrigerate the cake for 3 to 4 hours. When ready to serve, sprinkle the shredded coconut on top the cake.