In a large bowl, cream together butter, oil, and sugar until light and fluffy. Mix in the egg yolks, vanilla, and coconut.
In a separate bowl, mix flour, baking soda, and baking powder.
Alternate adding buttermilk and dry ingredients to wet ingredients. Mix until just combined, then fold in egg whites.
Pour evenly into the three prepared pans, then sprinkle the top of each pan with 1 (at least) tablespoon sugar.
Bake in preheated oven for 20 to 25 minutes, or until toothpick comes out clean. Remove from oven and allow to cool for 15 minutes, then turn the cakes out onto cooling racks and allow to cool completely.
In a medium bowl, combine cream cheese, butter, vanilla, and powdered sugar. Beat until light and fluffy. Stir in chopped walnuts and sugared coconut. Spread between layers and serve.
Note: cream cheese frosting will soften at room temperature, so refrigerate if you won’t use it right away.