Preheat oven to 350 degrees. Spray 3 (9-inch) round cake pans with nonstick baking spray with flour. (Or butter and flour each pan.)
In a large saucepan, bring cream to a simmer over medium heat. Add almonds to hot cream and remove from heat. Let stand 30 minutes. Strain almond mixture and reserve cream. (Really press down on almonds with a rubber spatula or back of a spoon to get as much liquid out as possible.) Place 1/4 cup of the almond cream in a small bowl to reserve for icing.
In a large bowl, beat butter with an electric mixer at medium-high speed until creamy. Add sugar and beat well. One at a time, add the eggs, stopping to scrape down sides of bowl periodically. Add extracts and beat to incorporate.
In a large bowl, whisk together flour, baking powder, and salt. Gradually add flour mixture to butter mixture, alternating with remaining almond cream, beginning and ending with flour mixture. Beat until combined and divide batter evenly among the 3 pans.
Bake until a wooden pick inserted in the center comes out clean, 23 to 26 minutes. Let cool in pans 5 minutes and remove cakes from pans and let cool entirely on a wire rack.
Make Amaretto Filling. In a small saucepan, combine 1/2 cup cream and amaretto liqueur. Bring to a simmer over medium heat. Remove from heat. Add gelatin to cream mixture, stirring until dissolved. Refrigerate for approximately 30 minutes. Mixture should be firm, but not set.
In a large bowl, beat remaining 1 1/2 cups cream at high speed with an electric mixer until stiff peaks form. Add sugar and chilled gelatin mixture and beat well. Refrigerate for 1 hour.
Beat for 2 minutes on medium-high speed and then spread between cake layers.
Make Buttercream Icing. In a large bowl, beat butter at medium-high speed until creamy.
Gradually add in confectioners’ sugar. Add almond cream and beat well. Add amaretto and extract.
Spread Amaretto Filling between layers and refrigerate for 30 minutes.
Spread icing on top and sides of cake. Store cake in refrigerator.
Notes
Update: There has been some confusion about the amount of cream needed in this recipe. You will need a total of 4 cups, plus possibly a little extra. Read the above post to see why I used a little extra. 2 cups are used to make the almond cream. The almond cream is then divided and 1/4 cup is reserved for the Buttercream Icing and the rest is added to the cake batter. A separate 2 cups of cream is used to make the Amaretto filling.