Place rack in upper and lower thirds of oven and preheat oven to 325°. Grease three 9-inch round cake pans with cooking spray, line with parchment paper, the grease again. Set aside.
In a large mixing bowl, beat together the sugar, butter, and coconut oil until well blended.
Add the eggs, one at a time, beating well after each addition. Beat in the vanilla and almond extracts. The mixture may look a bit curdled, but do not be concerned.
In a separate bowl, sift together the all purpose flour, whole wheat pastry flour, baking powder, baking soda, and salt.
Beating well on low speed after each addition, add the dry ingredients to the butter-sugar mixture in the following order: 1/3 of the dry ingredients; 1/2 of the buttermilk; the next 1/3 of the dry ingredients; the final 1/2 of the buttermilk; then the remaining dry ingredients. With a rubber spatula, fold in the 6 ounces of flaked coconut.
Divide the batter evenly between the prepared pans (the layers will look a little thin), then smooth the tops.
Bake 20 minutes or until a toothpick inserted in the center comes out clean, rotating the pans between the upper and lower racks and 180 degrees halfway through. Remove from the oven and cool cakes in their pans for 10 minutes, then run a knife along the edges and gently turn the cakes out on a cooling rack to cool completely.
To prepare the frosting, place the chocolate in a microwave-safe bowl, then microwave in 10-second intervals, until almost but not completely melted. Stir to melt the remaining chocolate, then set aside.
In a large mixing bowl, beat together the cream cheese and milk until smooth and creamy. Add the melted chocolate, beating until well-blended. In a small separate bowl, whisk together the sugar and cocoa powder until smooth. Add the sugar-cocoa to the cream cheese mixture a little at a time, beating on low speed until well blended. Beat in the vanilla and almond extracts, then continue beating the frosting until very creamy.
Place one cake layer on a serving plate, top side down and flat side up. Tuck strips of wax paper under the edges to protect the plate. Spread the top with 1/2 cup frosting. Place second layer, also flat side up, then spread top another 1/2 cup frosting. Top with remaining cake layer, again placing the flat side up. Spread remaining frosting over the top and sides of the cake. Sprinkle toasted chopped almonds on top. Carefully remove wax paper strips. Refrigerate for 2 hours prior to slicing and serving.
Notes
TO STORE: Cover the cake, and store it in the refrigerator for up to 2 days. Let it come to room temperature before serving.
TO FREEZE: Freeze your frosted or unfrosted cake for up to 2 months. Let it thaw overnight in the refrigerator, then bring it to room temperature before serving.