Preheat your oven to 350 degrees F. Grease and flour two 8-inch cake pans. Set aside.
In a medium mixing bowl, stir together the flour, baking powder, baking soda, salt, cinnamon, nutmeg, and ginger until well combined. Set aside.
In a large mixing bowl, beat together the oil and sugar until combined. Add the eggs and vanilla and mix until completely incorporated. Add the sour cream and mix until smooth.
Add half of the dry ingredients to the wet ingredients and mix. Add the pineapple juice and mix. Add the rest of the dry ingredients, and mix until just combined.
Stir in the carrots and chopped pecans into the cake batter with a rubber spatula. Pour the batter into the prepared cake pans, half in each pan. Smooth into an even layer and tap the pan on the counter to help remove any air pockets.
Bake for 35 to 40 minutes, or until the edges pull away from the pan slightly and a toothpick inserted in the center comes out clean.
Carefully remove the cakes from the oven. Cool for 20 minutes in the pans. Run a knife around the edge and then transfer the cakes to a wire rack to cool completely. (If you have trouble getting the cakes out, you can let them cool in the pans the whole time so they don't break.)
Frosting
In a medium mixing bowl, beat together the cream cheese, butter, and vanilla until combined. Add the powdered sugar and beat until smooth. If the frosting is too thick, add 1 tablespoon of milk and beat the frosting again. If it's still too thick add 1 more tablespoon of milk and beat until smooth.
Assembly
Level each of the cakes using a serrated knife. Place one cake layer, cut side up, on a cake plate or serving platter. Generously frost the top of the cake layer.
Place the second cake layer on top of the first, cut side down, so that you have a flat top to the cake. Cover the top and sides of the cake with the remaining frosting.
Place 12 pecan halves evenly around the outer edge of the cake. If desired, add some chopped pecans around the bottom edge of the cake. Refrigerate until ready to serve.
Notes
A 10-ounce bag of pre-shredded carrots from the store can be substituted for whole carrots if you want to save prep time.
To make your cake look a little fancier, you can also coat the sides with chopped pecans.
If you're into raisins, coconut, and/or pineapple in your carrot cake, you can add an 8-ounce can of crushed pineapple that has been drained, 1/2 cup of shredded coconut, and/or 1/2 cup of raisins to the batter when you add in the carrots & pecans.