Preheat oven to 350 degrees. Butter a 9-inch square baking pan. Line with parchment paper, leaving a 2-inch overhang on 2 sides. Butter parchment.
Stir together graham cracker crumbs and 2 cups coconut.
Place chocolates and 3 tablespoons sugar in a heatproof bowl, and set over a pan of simmering water. Heat, stirring, until melted. Add butter, and stir until melted and smooth. Remove from heat, and let cool slightly. Whisk in 1 egg.
Stir chocolate mixture into coconut mixture. Press evenly into prepared pan. Bake until set, 10 minutes. Transfer to a wire rack, and let cool in pan.
Using a mixer fitted with a whisk attachment, beat cream cheese and remaining cup sugar on high speed until very smooth and fluffy, about 5 minutes. Reduce speed to medium, and add egg yolks and remaining 2 eggs, 1 at a time, until well combined. Scrape sides of bowl. Beat on medium-high speed until completely smooth, about 3 minutes.
Pass mixture through a fine-mesh sieve into a bowl, and stir until smooth. Pour over cooled crust. Sprinkle remaining cup coconut evenly over the top.
Bake, rotating pan halfway through, until top layer is just set and coconut is golden brown, 40 to 45 minutes. Let cool completely in pan on a wire rack. Refrigerate, loosely covered, overnight.
Run a sharp knife around edges of pan, and use parchment to lift out cheesecake. Run a knife under hot water, and dry well. Use it to cut cheesecake into 1-inch squares, wiping knife clean between cuts. Serve immediately, or refrigerate in an airtight container for up to 1 week.