01 - Preheat oven to 350°F. Line an 8x8-inch baking pan with parchment paper, allowing overhang for easy removal.
02 - Combine graham cracker crumbs, melted butter, and sugar in a medium bowl. Press mixture evenly into pan bottom. Bake for 10 minutes, then cool slightly.
03 - Whisk together whole milk, coconut milk, sugar, cornstarch, and salt in a saucepan. Cook over medium heat, stirring constantly, until slightly thickened, about 3 minutes.
04 - Whisk egg yolks in a separate bowl. Gradually ladle hot milk mixture into yolks while whisking constantly to temper. Return mixture to saucepan.
05 - Continue cooking and whisking until thick and bubbling, 3 to 5 minutes. Remove from heat. Stir in vanilla extract and shredded coconut.
06 - Pour filling over cooled crust. Smooth top surface. Refrigerate for at least 1 hour until completely set.
07 - Beat heavy cream, powdered sugar, and vanilla extract until stiff peaks form. Spread evenly over chilled coconut layer.
08 - Sprinkle toasted coconut flakes over top. Refrigerate for at least 30 minutes before slicing into bars.