Preheat the oven to 350°F. In a medium bowl, combine the graham cracker crumbs, melted butter, and granulated sugar. Mix until well combined and press the mixture into the bottom of a 9x9-inch baking dish to form the crust. Bake for 8-10 minutes until lightly golden. Remove from the oven and let cool completely.
In a large mixing bowl, beat the softened cream cheese, powdered sugar, and vanilla extract until smooth and creamy.
In another bowl, whip the heavy cream until stiff peaks form. Gently fold the whipped cream into the cream cheese mixture until fully combined.
Spread half of the cream cheese mixture over the cooled crust. Drizzle half of the coconut milk over the cream cheese layer, then sprinkle half of the shredded coconut on top.
Repeat the layers with the remaining cream cheese mixture, coconut milk, and shredded coconut.
Cover the dish with plastic wrap and refrigerate for at least 4 hours, or overnight for best results.
Before serving, top with whipped topping and toasted coconut flakes if desired.