Preheat the oven to 350°F and spray two 8-inch cake pans with nonstick spray. Add a parchment round to the bottom of the pans and spray the parchment with the nonstick spray. Set aside.
In a large bowl, whisk together the flour, sugar, baking powder, baking soda, and salt.
Add the buttermilk, lime juice, lime zest, vanilla, and oil to the dry ingredients and beat with the paddle attachment of a stand mixer or a hand mixer just until fully combined.
In a separate bowl, whip the egg whites until they reach medium stiff peaks. Fold the egg whites careful into the batter just until the streaks of egg whites have been absorbed.
Separate the batter evenly into the two cake pans and bake for 35-40 minutes, or until the center of the cake springs back when pressed on. Let cool completely. I find the cake is easiest to frost when it has been chilled, so wrap each cake in a couple layers of plastic wrap and store in the fridge for at least 2 hours or overnight.
Once chilled, frost with the lime cream cheese frosting and decorate with fresh lime wedges and crushed graham crackers. Store in the fridge until ready to serve.
In the bowl of a mixer, beat the cream cheese and butter together until smooth. Scrape down the bowl and beat again for about 10 seconds to make sure it’s well incorporated.
Add the vanilla, lime zest, salt and powdered sugar. Mix on low until the powdered sugar is moistened enough for you to increase the speed to medium-high without making a mess. Beat until smooth and fluffy, about 2-3 minutes.
This frosting is best used immediately to frost the cake. If you make it in advance be sure it let it come to room temperature before using it to frost the cake.