diff --git a/yt_dlp/update.py b/yt_dlp/update.py
index a3a731aef..dad273267 100644
--- a/yt_dlp/update.py
+++ b/yt_dlp/update.py
@@ -15,6 +15,7 @@ from .utils import (
     Popen,
     cached_method,
     deprecation_warning,
+    remove_end,
     shell_quote,
     system_identifier,
     traverse_obj,
@@ -42,8 +43,7 @@ def _get_variant_and_executable_path():
             # Ref: https://en.wikipedia.org/wiki/Uname#Examples
             if machine[1:] in ('x86', 'x86_64', 'amd64', 'i386', 'i686'):
                 machine = '_x86' if platform.architecture()[0][:2] == '32' else ''
-        # NB: https://github.com/yt-dlp/yt-dlp/issues/5632
-        return f'{sys.platform}{machine}_exe', path
+        return f'{remove_end(sys.platform, "32")}{machine}_exe', path
 
     path = os.path.dirname(__file__)
     if isinstance(__loader__, zipimporter):
@@ -74,8 +74,8 @@ def current_git_head():
 _FILE_SUFFIXES = {
     'zip': '',
     'py2exe': '_min.exe',
-    'win32_exe': '.exe',
-    'win32_x86_exe': '_x86.exe',
+    'win_exe': '.exe',
+    'win_x86_exe': '_x86.exe',
     'darwin_exe': '_macos',
     'darwin_legacy_exe': '_macos_legacy',
     'linux_exe': '_linux',
@@ -264,7 +264,8 @@ class Updater:
                 self._report_error('Unable to overwrite current version')
                 return os.rename(old_filename, self.filename)
 
-        if detect_variant() in ('win32_exe', 'py2exe'):
+        variant = detect_variant()
+        if variant.startswith('win') or variant == 'py2exe':
             atexit.register(Popen, f'ping 127.0.0.1 -n 5 -w 1000 & del /F "{old_filename}"',
                             shell=True, stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL)
         elif old_filename: