Должен ли я сделать это путем реализации свойства multip_choice_allowed в существующем свойстве List_Field
Если вы можете сделать это, я думаю, что это лучшее решение, потому что таким образом вы избегаете распространения классов. Если при этом вы слишком усложняете свой класс List_Field, возможно, создание производного класса может иметь некоторые преимущества в отношении удобства сопровождения вашего кода.
Перечисление не имеет особого смысла. Типы MIME не ограничены. То есть список не ограничен: новые типы добавляются время от времени.
См. RFC4288: Спецификации типов носителей и процедуры регистрации
База данных IANA , скорее всего, будет полной, но вам нужно будет проанализировать эти страницы, чтобы получить плоский список.
Также есть mime.types файл, который поставляется с Apache, который, похоже, был получен из указанного списка.