I think this should have parens around the subtraction:

    return this.add( (target.x - x) * alpha, (target.y - y) * alpha, (target.z - z) * alpha).nor();

The old code did `.mul(alpha)` on the result of `target.tmp().sub(this)`, if I'm reading it correctly.  And it makes some sense to add in the alpha-scaled delta.