If one doesn't have a powerful computer, performance on Windows 10 sucks and you have to use nGlide.
It's not the case on Win 7 where nGlide is worse.
Have you figured out what directdraw is being used for? I wonder what would happen if you just comment it out.
It's hard to find proper documentation for bloody directx5 but from what I read it it seems that you need to use DirectDraw to be able to use Direct3D.
Besides introducing an easier-to-use immediate mode API, DirectX 5.0 added the SetRenderTarget method that enabled Direct3D devices to write their graphical output to a variety of DirectDraw surfaces.
The little info that I found mentions that Direct3D works on top of DirectDraw. So basically DirectDraw initializes the screen + handles the video memory and then Direct3D comes in, does the 3D rendering and shoots it back to DirectDraw to display. And I think it makes sense for two reasons:
1. The TRI code for Direct3D is extremely intertwined with DirectDraw calls. Basically in the same line of code there are calls to both DirectDraw and Direct3D which makes it impossible to comment out DDraw.
2. It kind of makes sense why MTM2 struggles when there are too many 256x256 textures as DDraw, being a 2D Api, was never designed to deal with too many high res (back then) textures.
I have compiled the game against DirectX7 headers (which has moved more into the direction of Direct3D as a standalone) but the code is written with DDraw in mind, so compiling against DX5 or DX7 headers makes no difference really.