PHP, 104 88 bytes
for(;$i++<$argn;$a.='**',$i++>1?$o=$s.$o:1)$o.=$s=str_pad("*$a",$argn,' ',2)."
";echo$o;
This doesn't beat the lowest scores for PHP on this challenge, but it's just too crazy for me to throw away.
Okay, so I've golfed now it to be the (not for long) lowest score for PHP on this challenge, but it doesn't change the fact that it's still crazy.
$ echo 7|php -nF hour.php
*******
*****
***
*
***
*****
*******