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 milk, coconut milk, sugar, cornstarch, and salt in saucepan. Cook over medium heat, stirring constantly until slightly thickened, about 3 minutes.
04 - Whisk egg yolks in separate bowl. Gradually ladle hot milk mixture into yolks while whisking constantly. Return mixture to saucepan.
05 - Cook mixture over medium heat, whisking constantly until thick and bubbling, 3-5 minutes. Remove from heat and stir in vanilla and shredded coconut.
06 - Pour filling over cooled crust. Smooth surface and 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 top. Refrigerate at least 30 minutes before slicing into bars.