Multi-core processors didn't exist on the consumer market until the XP era. As a result, NT 3.1 ~ 5.0 count each core as a processor (source: NT4, 2000, XP-era Microsoft statement). This becomes a problem due to licensing, as client editions have fewer supported processors than server editions. This is an artificial limitation, not a technical one. This means it might be preferable to use server editions of these OSes on overpowered multicore systems, although on NT 3.x this is easily bypassed.
Number of supported "processors" in each edition and version of Windows NT prior to XP: (todo)
XP x86 SP3 counts physical processors instead of cores in licensing; taskmgr shows 12 "processors" with my i7-4960X with 6 cores and 12 threads, indicating that XP sees more than 2 cores. Not sure about SP0~SP2 though. XP supports 2 physical CPUs.
According to Ars Technica, Windows Server 2016 switched to per-core licensing instead of per-socket. Client editions of Windows seems to be unaffected though.
MPS (MultiProcessor Specification) is an earlier standard predating ACPI. ACPI is only supported since Windows 2000. For NT 3 and 4, only MPS is supported for multi-processor computers. MPS had (at least) two versions: 1.1 and 1.4. NT 3.1 and 3.5 only support MPS 1.1, and would BSoD if booted with the MPS HAL on a MPS 1.4 computer. NT 3.51 ~ Server 2003 support MPS 1.4. Since Vista, only ACPI is supported.
On a VMWare VM with two virtual CPUs, NT 3.5 would say HAL is incorrect when booting: "This HAL.DLL can only be run on MPS Version 1.1 compliant systems. Replace the hal.dll with the correct hal. System is HALTING". Expand hal.dl_ from the i386 folder of the installation media to hal.dll and overwrite %windir%\system32\hal.dll. The system would boot, but the downside is it would only recognize one CPU. While there is a setting in the BIOS to change the MPS version to 1.1 (the other option is 1.4), changing that has no effect.
NT 3.1 installation media doesn't come with a halmps.dll, but one can be obtained on archive.org. Using this HAL in a VMWare guest would give the same error as above.
As for hardware, according to a video from Omores, a X470 AM4 motherboard doesn't support MPS, while the Gigabyte H110 motherboard (Skylake) does support MPS 1.4. MSI 890GXM-G65, an AM3 motherboard, also supports MPS 1.4. (source)
In the Ultimate NT 3.51 PC thread, someone said: Intel broke backward compatibility with MPS 1.1/1.4 support starting in the 8-series chipsets. You have to set up NT 3.51, NT 4, and Windows 2000 in "Standard PC" mode with only one processor on any platform newer than the Intel 7-series.
However, a video by Omores states that the Pro H610M-C D4 motherboard from Asus still supports MPS (1.4). I imagine the truth is somewhere in between: some motherboards support it, while some don't. I haven't been able to find information about exactly which motherboards support MPS.
Another consideration is that, Windows NT 3.1 and 3.5 only support MPS 1.1, not 1.4. So you'd need an even older motherboard if you want to use multiple processors on NT 3.1 and 3.5.
The MPS 1.1 HAL for NT 3.1 is provided as a download for the GA-586ID motherboard, so that's definitely supported on NT 3.1. It supports up to 100MHz Pentium CPUs.