Wait!!! Cool idea! Why not just push off the wall using it's own normal?!
Yeah that could work!
Code:
Vec_set( vecTarget, hit.x);
Vec_set ( vec_temp, hit.nx);
Vec_normalize ( vec_temp, 20);
Vec_add ( vecTarget, vec_temp);
// Bam!!! Virtual Monkey!!!