Crazy results with LinePlaneIntersection

The following code is supposed to projects spheres points on a cube :

int UProcMeshTestComponent::AddVertex(FVector v, FVector normal)
{
	int index = Vertices.Add(v);
	Normals.Add(v.GetSafeNormal());

	VertexColors.Add(FColor::White);

	FProcMeshTangent tagent(v - normal, false);
	Tangents.Add(tagent);

	FPlane plane(normal, normal);
	FVector uv3 = FMath::LinePlaneIntersection(v * 100.0f, FVector::ZeroVector, plane);
	UE_LOG(LogTemp, Warning, TEXT("------------->normal is %s"), *normal.ToString());
	UE_LOG(LogTemp, Warning, TEXT("plane is %s"), *plane.ToString());
	UE_LOG(LogTemp, Warning, TEXT("v is %s"), *v.ToString());
	UE_LOG(LogTemp, Warning, TEXT("uv projection is %s"), *uv3.ToString());
	FVector2D uv(uv3.X, uv3.Y);
	UV0.Add(uv);

	return index;
}

And the log says for Z plane :

LogTemp:Warning: ------------->normal is X=0.000 Y=-0.000 Z=1.000
LogTemp:Warning: plane is X=0.000 Y=-0.000 Z=1.000
LogTemp:Warning: v is X=0.707 Y=0.707 Z=-0.000
LogTemp:Warning: uv projection is X=-2767519.000 Y=-2767521.000 Z=1.000
LogTemp:Warning: ------------->normal is X=0.000 Y=-0.000 Z=1.000
LogTemp:Warning: plane is X=0.000 Y=-0.000 Z=1.000
LogTemp:Warning: v is X=0.707 Y=0.000 Z=-0.707
LogTemp:Warning: uv projection is X=-1.000 Y=0.000 Z=1.000
LogTemp:Warning: ------------->normal is X=0.000 Y=-0.000 Z=1.000
LogTemp:Warning: plane is X=0.000 Y=-0.000 Z=1.000
LogTemp:Warning: v is X=0.707 Y=-0.707 Z=0.000
LogTemp:Warning: uv projection is X=1614387.250 Y=-1614386.375 Z=1.000
LogTemp:Warning: ------------->normal is X=0.000 Y=-0.000 Z=1.000
LogTemp:Warning: plane is X=0.000 Y=-0.000 Z=1.000
LogTemp:Warning: v is X=0.707 Y=0.000 Z=0.707
LogTemp:Warning: uv projection is X=1.000 Y=0.000 Z=1.000

X=-2767519.000 Y=-2767521.000 Z=1.000 <---- !!!

Passed normal was wrong…
Solved.