01 - Preheat oven to 350°F. Line an 8x8-inch baking pan with parchment paper, leaving overhang for easy removal.
02 - Combine graham cracker crumbs, melted butter, and sugar in a medium bowl. Press mixture evenly into pan bottom. Bake 10 minutes, then cool slightly.
03 - Whisk together 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 whisk in 1 ladle of hot milk mixture to temper. Return mixture to saucepan.
05 - Cook, whisking constantly, until thick and bubbling, 3–5 minutes. Remove from heat. Stir in vanilla and shredded coconut.
06 - Pour filling over cooled crust. Smooth top. Refrigerate at least 1 hour until set.
07 - Beat heavy cream, powdered sugar, and vanilla until stiff peaks form. Spread evenly over chilled coconut layer.
08 - Sprinkle toasted coconut flakes on top. Chill at least 30 minutes before slicing into 16 bars.