Reason for class name length limit of 32 chars

While studying the C++ part of ValleyOfTheAncient i found that many class names, excluding prefixes, exceed the 32 char name length limit. Because exceeding this limit would be very beneficial, f.e. to align search terms, i’m trying to find the exact reasons for the limit.

The only question i could find about it doesn’t really go into detail unfortunately.

Is the limit purely because of OS APIs, f.e. MAX_PATH on windows, or are there also UE APIs which contain arbitrary limits?
I had a look at FWindowsPlatformFile and it seems like the magic prefix (\\?\) to handle long path names is implemented there.

Is the limitation for other platforms?