There are two versions of the bytecode interpreter, one used by the MMC1 games (Nobunaga's Ambition, Genghis Khan, Romance of the Three Kingdoms, and Famicom Top Management) and one used by the MMC5 games. The only differences between the versions are that the MMC5 version uses the mapper's multiplication registers, and has an extra routine that seems to be an optimized version of the syscall dispatcher
The bytecode is essentially an ideal C machine: it's mostly stack-based with a frame pointer and two 16-bit/32-bit registers, one "left" (destination for arithmetic ops) and the other "right" (source for arithmetic ops). It's integer-only but supports all the standard C operators including data and function pointers, both signed and unsigned division/modulus, signed and unsigned bit shifts, and bitfield extraction (with optional sign extension) and insertion. Almost all operations have 16-bit and signed 32-bit versions. 8-bit data are either zero-extended or sign-extended to 16 bits when read into a register, and the stack is 16-bit aligned.
Each bytecode function begins with a JSR to the interpreter, followed by the stack frame size as a negative 16-bit word ($FC $FF for a routine with two local variables, etc.) followed by the bytecode. The interpreter is reentrant, and the same bytecode instruction is used to call either a bytecode function or an assembly language one. Function arguments are pushed on the stack (with the caller responsible for stack cleanup--there's a "call xxxx and then unwind stack by n" instruction) and return values appear to be returned in the "left" register (the bytecode "return" instruction clobbers "right" but preserves "left").
The bytecode is so much an ideal C machine that I'm quite sure that the games were written in C (strings in the ROMs also have C-style formatting) which was compiled to bytecode rather than native 6502 code to save ROM space. I only wonder whether Koei wrote the compiler and interpreter themselves, or whether it's a product they licensed that may have been used by other developers as well.