diff --git a/discord/permissions.py b/discord/permissions.py
index b497eb83c..3cf903e94 100644
--- a/discord/permissions.py
+++ b/discord/permissions.py
@@ -127,7 +127,7 @@ class Permissions:
     def all(cls):
         """A factory method that creates a :class:`Permissions` with all
         permissions set to True."""
-        return cls(0b00011111111101111111110000111111)
+        return cls(0b00111111111101111111110000111111)
 
     @classmethod
     def all_channel(cls):
@@ -148,7 +148,7 @@ class Permissions:
     def general(cls):
         """A factory method that creates a :class:`Permissions` with all
         "General" permissions from the official Discord UI set to True."""
-        return cls(0b00011100000000000000000000111111)
+        return cls(0b00111100000000000000000000111111)
 
     @classmethod
     def text(cls):
@@ -417,7 +417,21 @@ class Permissions:
     def manage_roles(self, value):
         self._set(28, value)
 
-    # 3 unused
+    @property
+    def manage_emojis(self):
+        """Returns True if a user can create or edit emojis.
+
+        This also corresponds to the "manage permissions" channel-specific override.
+        """
+        return self._bit(29)
+
+    @manage_emojis.setter
+    def manage_emojis(self, value):
+        self._set(29, value)
+
+    # 2 unused
+
+    # after these 32 bits, there's 21 more unused ones technically
 
 def augment_from_permissions(cls):
     cls.VALID_NAMES = { name for name in dir(Permissions) if isinstance(getattr(Permissions, name), property) }