The change in the loss value would be expected, since you are comparing the mse loss for tensors on a different scale.
Here is a very simple example:
a = torch.randn(10)
b = torch.randn(10)
mse_loss = ((a - b)**2).mean()
> tensor(1.9161)

a_scaled = a * 1000.
b_scaled = b * 1000.
mse_loss_scaled = ((a_scaled - b_scaled)**2).mean()
> tensor(1916108.7500)

As you can see, the loss difference is created by the multiplication with 1000. for a and b.
This doesn’t mean that one error is “better” or “worse” than the other and depends how you are interpreting the output values.
E.g. scaling of target and model prediction values is sometimes done in regression tasks for e.g. keypoint detection. During training it might be beneficial for the model to predict the keypoint coordinates in the range [0, 1] while the original coordinate space could have been [0, 224].
While calculating the MSELoss for these scaled outputs and targets allows the model to train properly, its meaning might be hard to interpret since you won’t be able to easily map it to a location error in the “pixel space”. Unscaling the predictions and comparing them to the targets in the original range would allow you to use the MSELoss in this pixel space.