01 - Preheat oven to 350°F. Line an 8x8-inch baking pan with parchment paper, leaving an overhang on two sides for easy removal.
02 - In a medium bowl, combine graham cracker crumbs, melted butter, and granulated sugar. Mix until evenly moistened. Press firmly into the bottom of the prepared pan. Bake for 10 minutes until lightly golden. Let cool slightly.
03 - In a medium saucepan over medium heat, whisk together whole milk, coconut milk, sugar, cornstarch, and salt. Stir constantly until the mixture begins to thicken slightly, about 3 minutes.
04 - While the milk mixture heats, whisk egg yolks in a separate heat-proof bowl. Gradually ladle about 1/2 cup of the hot milk mixture into the yolks, whisking continuously to prevent curdling.
05 - Pour the tempered yolk mixture back into the saucepan. Cook over medium heat, whisking constantly, until the filling thickens and bubbles, 3 to 5 minutes. Remove from heat immediately.
06 - Stir in vanilla extract and shredded coconut until fully incorporated. Pour the hot filling over the partially baked crust. Spread evenly with a spatula.
07 - Refrigerate for at least 1 hour until the filling is completely set and firm to the touch.
08 - In a chilled bowl, beat heavy cream with powdered sugar and vanilla extract using an electric mixer until stiff peaks form.
09 - Spread the whipped cream evenly over the chilled coconut filling layer. Sprinkle toasted coconut flakes generously over the top. Refrigerate for at least 30 additional minutes before slicing.
10 - Lift the bars from the pan using the parchment paper overhang. Cut into 16 squares with a sharp knife, wiping the blade between cuts for clean edges.