In Silverstripe I got several Pages after my last Footer Page which are not shown in my Footer because of the unchecked ShowInFooterMenu. But FirstLast seems to count them anyway. Am I doing something wrong?
<% loop $Menu(1) %> will be returning all the pages to the view, you might need to filter the results in the page controller before they make it to the view, otherwise the number of returned pages to the view will be the number the $FirstLast takes as the truth.
Using the ORM filter might do the trick here along side a template method in Page_Controller. Have a go and post back if you get stuck again.
Be sure to read over the ORM/datamodel documentation: http://doc.silverstripe.org/framework/en/topics/datamodel
I think there is also a way to get Pages that are actually published too so you don't leak any unpublished pages (start a new forum question for that if need be or search to see if others have already solved it).