Preheat the oven to 350 degrees F. Line a 9 X 13 inch baking dish with parchment paper and set aside. Place the almonds in a food processor and pulse until finely ground. Add the flour, sugar, baking powder, and salt to the food processor. Pulse to combine. Then add the eggs and butter. Turn the food processor on low and run until the mixture forms soft crumby dough.
Dump the dough into the prepared pan. Lightly press the dough evenly over the surface of the pan. Don't pack it down too much. Set aside.
For the top layer, wipe out the food processor bowl and add the cream cheese. Turn on high and whip to soften. Scrape the bowl with a spatula, then add the eggs, vanilla extract, and almond extract. Beat the mixture again until smooth. Add the powdered sugar and beat until smooth. Scrape the bowl again, and mix one more time to make sure there are no clumps.
Pour the mixture over the bottom layer. Place on the middle rack in the oven and bake for 50-60 minutes. The top should be golden and puffed up in the center when it's done. If the top starts to turn dark before it puffs up, lay a loose piece of foil over the top to stop the browning, and continue baking.
Allow the gooey butter cake to cool completely at room temperature. Dust with powdered sugar if desired.
NOTE: For best cutting results, chill in the refrigerator for at least 3 hours before cutting. If you are in a rush, but want pretty pieces, place the pan in the freezer for 30-45 minutes. Then lift the entire cake out of the pan by the edges of the parchment and cut.