Preheat your oven to 350°F (175°C). Grease and flour three 9-inch round cake pans, then line the bottoms with parchment paper.
In a medium bowl, whisk together the flour, baking soda, and salt. Set aside.
In a large mixing bowl, cream together the softened butter, vegetable oil, and granulated sugar until light and fluffy, about 3-4 minutes.
Add the egg yolks one at a time to the butter mixture, beating well after each addition. Mix in the vanilla extract.
Alternately add the flour mixture and buttermilk to the batter, beginning and ending with the flour mixture. Mix just until combined.
Fold in the shredded coconut and chopped pecans using a rubber spatula until evenly distributed.
In a separate clean bowl, beat the egg whites until stiff peaks form. Gently fold into the batter in three additions.
Divide the batter evenly among the prepared pans. Bake for 25-30 minutes, or until a toothpick inserted into the center comes out clean.
Allow the cakes to cool in the pans for 10 minutes, then turn out onto wire racks to cool completely.
For the frosting, beat the cream cheese and butter together until smooth. Gradually add the powdered sugar and vanilla extract.
Once the cake layers are completely cool, stack and frost the layers, then frost the sides and top of the cake.
Garnish with additional toasted pecans and coconut if desired. Refrigerate for at least 30 minutes before serving.
Notes
For best results, bring all ingredients to room temperature before starting. Cake can be made ahead and refrigerated for up to 5 days. Toast pecans for enhanced flavor.