Preheat the oven to 350 degrees. Prepare your cake pans for baking. I spray them with pan release, but you could also brush them with melted butter and sprinkle them with flour if you prefer.
Start by mixing the flour, baking powder, baking soda, salt, and cinnamon into a small bowl and set it aside.
In another, medium bowl add in the melted butter, oil, and brown sugar. Mix these together.
Next in are the eggs and vanilla. Mix until they are combined. The flour mixture will be mixed in after this- again, only mixing to combine.
Last in are the cabbage, apples and pecans. Divide the batter between the 2 8-inch cake rounds. Be sure to prepare these first by spraying with pan release. Or you can butter and flour the pan.
Bake until a toothpick comes out almost dry. One key of baking with whole wheat flour is to underbake JUST slightly. It will continue to bake even after it is removed from the oven. The residual heat will hold and cook even when it comes out of the oven.
When the cake has cooled completely, it is time to ice it. Mix together the cream cheese, butter, powdered sugar, vanilla, spices, and milk. You want a medium consistency in the icing, so add as much more milk or powdered sugar as needed.
Spread the icing over the middle of the cake, then top with the second layer of cake. Continue icing the rest of the cake and topping as you like. I piped some rosettes on top and added whole pecan to those, but you can top however you like.