Preheat the oven to 350 degrees.
Lightly grease and flour three 8-inch cake pans. Using an electric mixer, cream the sugar and butter. With the mixer running, add the oil and incorporate thoroughly. Add the egg yolks, one at a time, beating well after each yolk. In a separate bowl, sift the flour and baking soda together. Add the ground pecans to the flour mixture. Alternately add the flour mixture and buttermilk to the egg mixture. Mix thoroughly. Fold in the coconut. Using an electric mixer, in a separate bowl, beat the egg whites until stiff. Fold the egg whites into the batter. Pour the batter into the prepared pans. Bake the cakes for about 25 to 30 minutes or until the center of each cake is set. Remove the cakes from the oven and cool on a wire cake. After the cakes have cooled, invert each cake onto a piece of parchment paper. Set the cakes aside. To make the frosting, use an electric mixer to cream the butter and cream cheese. Add the powdered sugar, vanilla and milk. Mix well. Fold in the pecan pieces. Spread a thin layer of the frosting on top of each cake. Place the layers of cake on top of each other. Ice the sides of the cake with the remaining frosting. Sprinkle the top of the cake with the coconut.