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 for 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 add a ladle of hot milk mixture to yolks while whisking constantly. Return yolk mixture to saucepan.
05 - Cook mixture over medium heat, whisking constantly until thick and bubbling, 3 to 5 minutes. Remove from heat. Stir in vanilla and shredded coconut.
06 - Pour filling over cooled crust. Smooth surface. Refrigerate for at least 1 hour until completely set.
07 - Beat heavy cream, powdered sugar, and vanilla until stiff peaks form. Spread evenly over chilled coconut layer.
08 - Sprinkle toasted coconut flakes over whipped cream. Refrigerate for at least 30 minutes before slicing into 16 bars.