Preheat the oven to 300F/150C. Wrap the bottom of a 9-inch (23-cm) springform pan tightly with wide foil in preparation for the water bath.
Prepare the crust first. Place the graham crackers and coconut flakes into a food processor and pulse for a minute until fine crumbs form. Pour in the melted butter and pulse again just until the crumbs are well coated. Transfer the crumbs into the prepared springform pan and using a potato masher or the back of your hand, press the crumbs firmly into the bottom of the pan, creating an even layer.
Next, prepare the cheesecake: place the softened cream cheese into a mixer bowl and using the flat beater attachment, mix the cream cheese for 7 to 10 minutes. Stop and scrape down the sides of the mixing bowl often; the cream cheese needs to be smooth and creamy.
Next, add in the eggs, sugar, vanilla extract and coconut extract. Mix for another 3 to 4 minutes until the batter is smooth and creamy. Scrape down the sides of the mixing bowl often! Add in the cocoa powder and melted chocolate last and mix for a few more minutes, until the batter is smooth and uniform.
Pour the cheesecake batter over the prepared crust and level the top with an offset spatula. Prepare the water bath: place the cheesecake into a large baking dish or pan and fill the pan with water. Bake the cheesecake in the preheated oven at 300F/150C for 2 hours. When done, the center of the cake will be slightly wobbly. Turn the oven off and prop the oven door open with a wooden spoon. Allow the cheesecake to cool slowly for several hours until it’s at room temperature. Refrigerate the cheesecake overnight until it’s set.
For German Chocolate Cake Filling:
For the German Chocolate Cake Filling: melt the butter in a small saucepan over low heat. Add in the evaporated milk, sugar, egg yolks and vanilla and whisk for about 1 minute, until the mixture is smooth. Continue cooking the mixture over low heat, stirring constantly with a spatula, until it thickens into a custard, about 3 to 5 minutes. Do not boil the mixture! If clumps form, strain the custard through a fine-mesh strainer. Remove the custard from heat and stir in the coconut flakes and diced pecans. Allow the topping to cool completely before using.
For Chocolate Buttercream:
For the Chocolate Buttercream: place the softened butter into a medium mixing bowl and whisk on high speed for about 5 minutes until it’s light and fluffy. Add the melted chocolate, cocoa powder, vanilla and salt to the butter. Continue whisking for a few minutes, scraping down the sides of the mixing bowl. Add in the confectioner's sugar. After its incorporated, turn the mixer to high speed and whisk for 3 to 4 minutes, or until frosting is light and fluffy.
Assembling the Cheesecake:
Assembling the cheesecake: Remove the cheesecake from the springform pan and onto a cake stand. Transfer the buttercream into a pastry bag tipped with a star tip; I used a French Star tip #4. Pipe dollops of the buttercream around the edge of the cheesecake. Add the prepared filling into the center and fluff it up with a fork. The cheesecake can be enjoyed right away or refrigerated for up to 1 week.