Ну, во-первых, вы даете противоречивые инструкции ...
background: url("img/menu.png") top left no-repeat;
background-position: -123px 0;
... фон уже позиционирован с использованием сокращения.
Я предполагаю, что ваше обычное и наведенное состояния имеют одно и то же изображение, так почему бы не сделать оба с сокращением? Удалить ...
background-position: -123px 0;
... а для вашего наведения и активного состояния используйте ...
background-position: bottom left;
Тогда оба ваших состояния должны быть на одном изображении, одно под другим (я полагаю, это то, что вы пытались в любом случае).