Butter three 9-inch round cake pans. Line bottoms with parchment paper, and butter parchment; shortening can also be used in place of butter for the pans. Dust the pans with flour and tap out the excess.
Whisk together the dry ingredients: flour, baking powder, baking soda, cinnamon, salt, ginger, nutmeg and allspice in a medium mixing bowl.
Using an electric mixer, beat butter and sugars on medium speed in a large bowl until pale and fluffy.
Then, add eggs, one at a time, ensuring to beat well after each addition; about 3 minutes.
Add vanilla, water, and carrots and beat until well combined. Reduce speed to low, and add the dry ingredient mixture and the finely chopped pecans.
Divide batter evenly into prepared pans. Bake, rotating pans halfway through, until golden brown and a toothpick inserted into centers comes out clean, about 30 minutes.
After removing from the oven, let cool in pans on a wire rack for 15 minutes.
To remove cakes from pans, run a knife around the edges of the cakes to loosen, and turn the cakes out onto a wire rack. Let the cakes cool completely.
Cream Cheese Frosting:
Using an electric mixer, add cream cheese and vanilla to a medium bowl and beat on medium speed until creamy. Add the butter to the mixer and beat well.
Reduce the speed to low and gradually add the powdered sugar and beat until the frosting is smooth and fluffy.
If the cake tops are rounded, use a serrated knife to trim the rounded top off of two of the layers. Place one trimmed cake, cut side up, on a serving platter and spread 1 cup of frosting over the cake.
Top with second trimmed cake, cut side down and spread 1 cup frosting over cake.
Finally, top with third cake layer with the rounded side up and spread remaining frosting over top and sides.
Gently press whole pecans onto sides of cake and top with coarsely chopped pecans. Refrigerate 1 hour before serving.