diff --git a/source/sw/src/input.cpp b/source/sw/src/input.cpp
index bc4526dad..00ac26150 100644
--- a/source/sw/src/input.cpp
+++ b/source/sw/src/input.cpp
@@ -43,6 +43,9 @@ void DoPlayerHorizon(PLAYERp pp, fixed_t *pq16horiz, fixed_t q16horz);
 static InputPacket loc;
 static int32_t turnheldtime;
 
+// Constant used for scaling input down to match other games. May not last long after true re-factoring.
+static constexpr double const inputScale = 263. / 360.;
+
 void
 InitNetVars(void)
 {
@@ -227,15 +230,6 @@ static void processMovement(PLAYERp const pp, ControlInfo* const hidInput, bool
     int32_t turnamount;
     int32_t keymove;
 
-    // The function DoPlayerTurn() scales the player's q16angvel by 1.40625, so store as constant
-    // and use to scale back player's aim and ang values for a consistent feel between games.
-    float const angvelScale = 1.40625f;
-    float const aimvelScale = 1.203125f;
-
-    // Shadow Warrior has a ticrate of 40, 25% more than the other games, so store below constant
-    // for dividing controller input to match speed input speed of other games.
-    float const ticrateScale = 0.75f;
-
     if (loc.actions & SB_RUN)
     {
         if (pp->sop_control)
@@ -260,23 +254,23 @@ static void processMovement(PLAYERp const pp, ControlInfo* const hidInput, bool
 
     if (buttonMap.ButtonDown(gamefunc_Strafe) && !pp->sop)
     {
-        svel -= (hidInput->mousex * ticrateScale) * 4.f;
+        svel -= (hidInput->mousex * inputScale) * 4.f;
         svel -= hidInput->dyaw * keymove;
     }
     else
     {
-        q16angvel += FloatToFixed((hidInput->mousex / angvelScale) + scaleAdjustmentToInterval((hidInput->dyaw * ticrateScale) / angvelScale));
+        q16angvel += FloatToFixed((hidInput->mousex + scaleAdjustmentToInterval(hidInput->dyaw)) * inputScale);
     }
 
     if (mouseaim)
-        q16horz -= FloatToFixed(hidInput->mousey / aimvelScale);
+        q16horz -= FloatToFixed(hidInput->mousey * inputScale);
     else
-        vel -= (hidInput->mousey * ticrateScale) * 8.f;
+        vel -= (hidInput->mousey * inputScale) * 8.f;
 
     if (in_mouseflip)
         q16horz = -q16horz;
 
-    q16horz -= FloatToFixed(scaleAdjustmentToInterval((hidInput->dpitch * ticrateScale) / aimvelScale));
+    q16horz -= FloatToFixed(scaleAdjustmentToInterval(hidInput->dpitch * inputScale));
     svel -= hidInput->dx * keymove;
     vel -= hidInput->dz * keymove;