If I understand you correctly, the coordinates you are getting from Mouse.GetState()
always fall within the bounds of the screen (ie: 0 < x < 1680 and 0 < y < 1050).
This is normal.
The transformation matrix you are using is taking coordinates in "world space" and putting them in "client space" (which is the space that SpriteBatch
then uses to project sprites onto the screen).
Mouse.GetState()
also returns coordinates in client space. What you want is to find what position those client coordinates represent in world space. So what you have to do is reverse the transformation. Here is some (untested) code that shows you how:
MouseState mouseState = Mouse.GetState();
Matrix transform = whatever;
Matrix inverseTransform = Matrix.Invert(transform);
Vector2 clientMouse = new Vector2(mouseState.X, mouseState.Y);
Vector2 worldMouse = Vector2.Transform(clientMouse, inverseTransform);
(Note: If you get NaN errors, make sure you're not scaling your Z coordinate down to zero, see here.)