Preheat oven to 350°F (175°C). Grease and flour three 9-inch round cake pans.
In a large bowl, combine flour, sugar, baking soda, and salt.
2.5 cups all-purpose flour
Add butter, oil, and buttermilk. Beat until combined. Add eggs and vanilla. Beat for 2 minutes.
2.5 cups all-purpose flour
Stir in coconut and pecans.
2.5 cups all-purpose flour
Pour batter into prepared pans and bake for 30-35 minutes, or until a toothpick inserted into the center comes out clean.
Let cool in pans for 10 minutes, then invert onto a wire rack to cool completely.
For the frosting, beat cream cheese and butter until smooth. Gradually add powdered sugar and vanilla extract, beating until light and fluffy.
2.5 cups all-purpose flour
Frost the cooled cake layers.