You still arent being clear (to me at least) with what you are trying to achieve.
There are many different vector/angle manipulation functions, and I suspect you
just need to find the 'right' one, which isnt always easy.
OR there is a chance that you are hitting the dreaded 'gimbal lock' issue.
If vec_rotate was ACTUALLY bugged, it would be affecting a great many people...
Can you give a few SIMPLE examples of what results you are expecting...
eg:
(10,10,10) + (0,15,0) = (10,25,10)
(20,20,20) + (15,20,25) = (35,40,45)
and the like...