Preheat the Oven:
Preheat your oven to 350°F (175°C).
Grease and flour a 9x13-inch baking pan, or line it with parchment paper for easy removal.
Prepare the Cake Batter:
In a large mixing bowl, cream together the softened butter, vegetable oil, and granulated sugar using a hand mixer or stand mixer until light and fluffy.
Add the egg yolks one at a time, beating well after each addition.
Stir in the vanilla extract.
Mix Dry Ingredients:
In a separate bowl, whisk together the flour, baking soda, baking powder, and salt.
Combine Wet and Dry Ingredients:
Gradually add the dry ingredients to the butter mixture, alternating with the buttermilk, beginning and ending with the dry ingredients. Mix until just combined.
Fold in Coconut and Pecans:
Gently fold in the shredded coconut and chopped pecans until evenly distributed in the batter.
Beat Egg Whites:
In a clean mixing bowl, beat the egg whites until stiff peaks form.
Gently fold the beaten egg whites into the cake batter, being careful not to deflate them.
Bake the Cake:
Pour the batter into the prepared baking pan and spread it evenly.
Bake in the preheated oven for 25-30 minutes, or until a toothpick inserted into the center comes out clean.
Allow the cake to cool in the pan on a cooling rack.
Prepare the Cream Cheese Frosting:
In a mixing bowl, beat together the softened cream cheese and butter until smooth and creamy.
Gradually add the powdered sugar, one cup at a time, beating well after each addition.
Stir in the vanilla extract.
Frost the Cake:
Once the cake has completely cooled, spread the cream cheese frosting evenly over the top of the cake.
Sprinkle the top with additional chopped pecans and shredded coconut if desired.