01 - Preheat oven to 350°F. Line an 8x8-inch baking pan with parchment paper, allowing overhang for easy removal later.
02 - Combine graham cracker crumbs, melted butter, and sugar in a medium bowl. Mix until evenly moistened, then press firmly into the bottom of the prepared pan. Bake for 10 minutes until lightly golden. Set aside to 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, approximately 3 minutes.
04 - Whisk egg yolks in a separate heat-proof bowl. Gradually ladle about 1/2 cup of the hot milk mixture into the yolks while whisking continuously to prevent curdling. Return the tempered yolk mixture to the saucepan.
05 - Continue cooking the mixture over medium heat, whisking constantly, until it thickens considerably and bubbles appear, about 3 to 5 minutes. Remove from heat immediately. Stir in vanilla extract and shredded coconut until fully incorporated.
06 - Pour the hot coconut filling over the partially cooled crust. Smooth the surface with an offset spatula. Refrigerate for at least 1 hour until completely set and firm.
07 - Using an electric mixer, beat the chilled heavy whipping cream with powdered sugar and vanilla extract until stiff peaks form. Spread the whipped cream evenly over the chilled coconut filling layer.
08 - Sprinkle toasted coconut flakes generously over the whipped cream topping. Refrigerate for at least 30 additional minutes to firm up. Use the parchment overhang to lift the bars from the pan, then cut into 16 squares with a sharp knife.