Preheat the oven to 350F. Grease an 13x9 inch pan with cooking spray.
In a large bowl combine the wet ingredients and whisk until fully incorporated.
In a separate bowl, combine all the dry ingredients except the chopped walnuts, and whisk.
Add the dry ingredients to the wet ingredients and stir with a spatula or wooden spoon.
Fold in the chopped walnuts, if using.
Transfer to prepared pan and bake for 30 minutes. Allow to cool.
Run a knife around edge of cake to loosen from pan. Invert cake onto cooling rack or serving platter.
For the Frosting
In the bowl of a stand mixer fitted with the paddle attachment, beat the butter until smooth. Add the cream cheese and continue beating until smooth.
Add the sifted powdered sugar, in 1 cup increments, followed by the vanilla extract and salt. Beat until fully combined. The frosting needs to be creamy and thick, so add more powdered sugar until you reach the desired consistency.
Spread over the cake using an angled spatula to create swirls
For the Salted Coconut Caramel (if using)
Combine all the ingredients in a medium saucepan and simmer for 30 minutes, stirring occasionally, until the mixture thickens. It’ll continue to thicken once cooled. Set aside 1 cup and refrigerate the rest for up to 1 week.