CLDC и MIDP — это всего лишь стандартные библиотеки Java ME. Первое — это штатные возможности процессора и JVM, более ограниченные, чем Java SE. Второе — доступ к аппаратуре телефона: LCDUI, MMAPI и прочее. Ещё одно отличие — т.н. преверификация классов (Java SE вычисляет информацию о классах сама, а Java ME с кастрированным загрузчиком — полагается на расчёт на настольном компьютере).
Как они архитектурно реализованы, какой процент библиотек написан на Java и какой в машинном коде — программиста на Java ME совершенно не интересует (кроме случаев, когда на мобильнике какой-то класс глючит). На то он и ME, что даёт простой фреймворк для написания софта для мобильников.
Какой-то эмулятор есть в Java ME SDK. Как его настроить под нужный мобильник, я не в курсе.
Также есть MicroEmulator:
https://code.google.com/archive/p/microemu/downloads . Если вы хотите быть такой элитой Java ME, что будете писать свои драйверы (или просто встроить поддержку ME куда-то в другую программу), думаю, что MicroEmulator — неплохой тестовый полигон. Обычный ME’шник драйверов не пишет, их пишут авторы прошивок мобильников.