For direction you need something like ;
mouse.x < player.x , player set mirrored
mouse.x > player.x , player set not mirrored
For the aiming towards cursor, you shouldn't be rotating the player object, there should be a separate object that aims like just his arm or something.