i'm pretty sure a normalized vector has a magnitude of 1, meaning the squareroot((x2-x1)^2 + (y2-y1)^2 + (z2-z1)^2) = 1. So for your example of (0, 0, 0) to (100, 100, 0), a vector of (1,1,0) would give you a magnitude of sqrt(1 + 1 + 0), which = sqrt(2) which does not = 1. To find the normalized vector, we would divide each of the components of the non-normalized vector by the magnitude of the vector. (100/sqrt(20000), 100/sqrt(20000), 0) = (.707, .707, 0)

So, to find the normalized vector for movement to any point in three dimensions, say from (0,0,0) to (4,90,36) we would first make a vector using the changes in x,y,z: (4,90,36).

then we plug in the coordinates into the distance equation.

sqrt(4^2 + 90^2 + 36^2) = 97.02...

and divide each component of our vector by this magnitude

(4/97, 90/97, 36/97) = (.04, .93, .37). to double check our work, we plug these into the magnitude formula and sure enough, we get 1.00

so once you find the normalized vector, you can multiply the components by whatever max speed you want the unit to have, and voila!