Сам stage не реагирует на MOUSE_OVER. Его дети в дисплей-листе реагируют.
Вот немного переписал код. Курсор сразу скрывается при запуске приложения как вы хотите. И продолжает нормально работать после фуллскрина.

Код AS3:
package
{
import flash.display.Bitmap;
import flash.display.BitmapData;
import flash.display.Sprite;
import flash.display.StageDisplayState;
import flash.display.StageScaleMode;
import flash.events.Event;
import flash.events.MouseEvent;
public class Main extends Sprite
{
public function Main()
{
var bitmap:Bitmap = new Bitmap();
bitmap.bitmapData = new BitmapData(800, 600, false, 0);
var sprite:Sprite = new Sprite();
addChild(sprite);
sprite.addChild(bitmap);
var mainMenu:MainMenu = new MainMenu();
addChild(mainMenu);
stage.addEventListener(MouseEvent.CLICK, stage_click);
}
private function stage_click(e:MouseEvent):void
{
stage.scaleMode = StageScaleMode.EXACT_FIT;
stage.displayState = StageDisplayState.FULL_SCREEN;
}
}
}

Код AS3:
package
{
import flash.display.Bitmap;
import flash.display.BitmapData;
import flash.events.Event;
import flash.events.MouseEvent;
import flash.events.TimerEvent;
import flash.ui.Mouse;
import flash.utils.Timer;
public class MainMenu extends Bitmap
{
private var _timerIdle:Timer;
public function MainMenu()
{
bitmapData = new BitmapData(100, 100, false, 0xff0000);
visible = false;
Mouse.hide();
if (stage) initMonitoringMouseMove();
else addEventListener(Event.ADDED_TO_STAGE, initMonitoringMouseMove);
}
private function initMonitoringMouseMove(e:Event = null):void
{
removeEventListener(Event.ADDED_TO_STAGE, initMonitoringMouseMove);
stage.addEventListener(Event.MOUSE_LEAVE, onMouseLeaveHandler);
stage.addEventListener(MouseEvent.MOUSE_OVER, onMouseOverHandler);
_timerIdle = new Timer(2000);
_timerIdle.addEventListener(TimerEvent.TIMER, onTimerIdleCompleteHandler);
onMouseOverHandler();
}
private function onMouseOverHandler(e:MouseEvent = null):void
{
stage.removeEventListener(MouseEvent.MOUSE_OVER, onMouseOverHandler);
stage.addEventListener(MouseEvent.MOUSE_MOVE, onMouseMoveHandler);
}
private function onMouseLeaveHandler(e:Event):void
{
trace('mouseLeave');
stage.removeEventListener(MouseEvent.MOUSE_MOVE, onMouseMoveHandler);
stage.addEventListener(MouseEvent.MOUSE_OVER, onMouseOverHandler);
}
private function onMouseMoveHandler(e:MouseEvent):void
{
visible = true;
Mouse.show();
_timerIdle.delay = 2000;
_timerIdle.start();
}
private function onTimerIdleCompleteHandler(e:TimerEvent):void
{
_timerIdle.stop();
visible = false;
Mouse.hide();
}
public function destroy():void
{
removeEventListener(Event.ADDED_TO_STAGE, initMonitoringMouseMove);
if (stage)
{
stage.removeEventListener(MouseEvent.MOUSE_MOVE, onMouseMoveHandler);
stage.removeEventListener(MouseEvent.MOUSE_OVER, onMouseOverHandler);
stage.removeEventListener(Event.MOUSE_LEAVE, onMouseLeaveHandler);
}
if (_timerIdle)
{
_timerIdle.stop();
_timerIdle.removeEventListener(TimerEvent.TIMER, onTimerIdleCompleteHandler);
}
}
}
}