In a mixer (or bowl) combine the eggs, sugar, butter and oil. Beat until fluffy and pale yellow. Add the buttermilk and vanilla and beat well to mix.
In another bowl, sift the flour, cocoa, baking powder and soda. Add to the wet ingredients in three batches on low speed. Beat each time until the mix just comes together. With the mixer running, add the boiling water and coffee and beat until a smooth batter is formed.
Butter and flour (or line with baking paper) two 8” round cake pans. Divide the batter evenly between the pans and place in a preheated 375°F oven for 30 minutes or until a toothpick comes clean from the center. Cool on a wire rack for 5 minutes and turn out on to the wire rack and allow to cool.
For the filling: in a large saucepan over medium-high meat, bring the cream to a boil watching carefully. Cream will boil over easily. Remove from heat immediately when it comes to a boil.
In a large mixing bowl, combine the egg yolks and sugar and whisk until pale and light. Add a little of the hot mixture to the eggs and whisk smooth. Pour the eggs into the hot cream. Using a spatula, mix until smooth. Return to low heat and stir until the mixture begins to thicken (about 1-2 minutes). Be very careful not to boil the egg mixture or it will separate. Strain through a sieve back into the mixing bowl and add the coconut and hazelnuts. Stir well, cover with plastic film and chill until needed.
For the icing: In a mixer, combine the butter, powdered sugar, and cocoa. Whip on low speed until well blended. Beat on high speed until fluffy.
To assemble the cake, cut each cake in half. Place a bottom layer on a serving plate, spread some of the chilled coconut mixture over the surface. Top with a second cake half and continue with the rest of the cake layers and filling. Using a spatula, spread the icing evenly over the surface of the cake.
For decoration, you can press toasted coconut or nuts onto the side of the cake.