Change to:
c_move(me, vector(move_speed*time_step, 0, 0), nullvector, IGNORE_PASSABLE | GLIDE);
...since local x is the direction the entity is pointing.
Your code instead makes the entity point along the bounce vector, even though it wasn't pointing along its original vector in the first place. Then it moves "up" relative to the direction it's looking now, instead of just moving in the actual direction it's looking.
I hope that's what you're looking for.
Jibb