Preheat oven to 350 degrees. Place rack in the center of the oven.
Prepare a 9-inch springform pan by spraying the inside with cooking spray.
In a medium bowl, combine all crust ingredients and mix thoroughly. Press in the bottom of the prepared pan.
Bake for 10 minutes or until the edges are slightly golden. Remove from the oven and cool.
Lower oven temperature to 325 degrees.
Prepare the ganache while the crust is baking.
Prepare ganache by placing whipping cream and chocolate in a bowl. Microwave for 40 seconds and then stir. Continue microwaving and stirring in 15-second increments until chocolate is melted and ingredients are smooth. Spread ganache evenly over the cooled crust. Place in freezer while making cheesecake layer.
In the bowl of a stand mixer, mix cream cheese until smooth. Add sugar, cornstarch, extracts, and salt. Mix on low speed, scraping down the sides and bottom of the bowl as needed. Add eggs and mix just until incorporated. Add coconut milk and mix just until combined.
Pour carefully or spoon into prepared pan to not disturb the ganache layer. Smooth the top.
If using water bath method (see recipe notes) follow baking instructions in notes. We highly recommend using the water bath method.
If not using water bath instructions, bake for about 60-70 minutes or until the center of the cheesecake is slightly jiggly. Remove from oven and cool to room temperature.
While cooling, make the custard.
Add all custard ingredients in a medium bowl. Whip just until thickened. Spread evenly over the cooled cheesecake.
Cover cheesecake in aluminum foil and refrigerate for 8 hours or overnight. Before serving, top with coconut whipped cream.
Place all ingredients in a medium bowl. Whip just until stiff peaks form. Spread over the pudding layer. If desired, reserve some of the whipped cream for piping and decorating the cheesecake.
Top with toasted coconut.
