Preheat the oven to 325°F. Spray a 9×13-inch baking dish with nonstick baking spray.
Add the graham cracker crumbs, granulated sugar, and melted butter to a medium bowl. Stir until the crumbs are evenly coated.
Press the crumb mixture firmly into the bottom of the prepared baking dish.
Bake the crust for 8 minutes. Remove from the oven and set aside.
Add the softened cream cheese to a large mixing bowl. Beat on medium speed until smooth and fluffy.
Add the sweetened condensed milk and granulated sugar. Beat until smooth, scraping down the sides of the bowl as needed.
Add the coconut milk, eggs, vanilla extract, coconut extract, salt, and flour. Mix on low speed until combined.
Fold in the shredded coconut.
Pour the filling over the warm crust and spread it into an even layer.
Bake for 38 to 45 minutes, or until the edges are set and the center has a slight jiggle.
Cool at room temperature for 1 hour.
Cover and refrigerate for at least 4 hours, or overnight.
Toast the coconut in a dry skillet over medium-low heat for 3 to 5 minutes, stirring often, until golden brown.
Spread whipped topping over the chilled dessert and sprinkle with toasted coconut.
Slice into squares and serve chilled.