Preheat the oven to 350ºF. Line two 9-inch round cake pans with parchment paper and lightly spray with non-stick baking spray. Spread almonds on a baking sheet and roast, shaking pan once or twice, until lightly golden brown, about 8-10 minutes. Set aside to cool completely. Spread coconut on a separate sheet and toast for 15-20 minutes, stirring every 5 minutes, until lightly golden brown.
In the bowl of a food processor, combine the flour, salt, and cooled almonds. Process the mixture until the almonds are finely ground. Set aside.
In the bowl of a stand mixer fitted with the whisk attachment, beat the egg yolks at medium speed until blended, about 1 minute. Gradually add 1 cup of the sugar. Increase the speed to high and beat until thickened and light in color, about 2 minutes. Transfer mixture to a clean bowl (thoroughly clean the mixing bowl and whisk attachment before proceeding).
In the clean bowl of a stand mixer fitted with the whisk attachment, beat the egg whites at medium speed until frothy. Add the cream of tartar and beat at medium-high speed until soft peaks form. Gradually add the remaining ½ cup sugar and beat on high until a stiff, glossy meringue forms. Using a rubber spatula, fold one-third of the meringue into the the yolk mixture, then fold in one-third of the dry ingredients. Continue gently folding, alternating ingredients until combined.
In a small bowl, stir together the melted butter, almond extract, and vanilla extract. Fold in about 1 cup of the cake batter into the butter mixture, then fold this mixture back into the the remaining batter. Divide the batter between the prepared pans and bake for 18-22 minutes. Cool the cakes on a wire rack for 20 minutes. Unmold cake onto racks and cool completely.