There must be strong mixing between password and date time value.
The password stretching/mixing algorithm is simple, and I've thoroughly tested it to make sure it works well.
The internal minimum password length is 77 characters, and if the password length is < 77 I mangle it until it is 77 characters long.
I then look at the long password as an integer where each character is a digit to the base 96 (the number of printable characters in the ascii set).
I then convert the long password to a bigint, by using 31 as the base, rather than 32 (space), otherwise a password of all spaces would equal a bigint password value of zero, which would create all the LCG parameters equal to zero. Using 31 as the base means that a password of all spaces equals a non-zero bigint value.
I then multiply the bigint password by the date_time_microseconds value. The internal password length is chosen carefully so that after multiplying by the date_time, it is 144 hex digits long. The password-date-time product is than chopped into 8 byte chunks and each chunk becomes one of the 18 LCG parameters. I've thoroughly tested the method of multiplying the long password by the date-time, to ensure that just single microsecond change in the date-time, changes most of the digits in the final bigint product. This was luck, not clever design, and I'm not sure why it works so well; maybe a maths expert could explain this

If the PRNG is used simply to produce random numbers without a password, I create a 129 hex digit value using the default LCG parameters of the PRNG (this is not random yet).
I then multiply this by the date_time, to produce random value 144 hex digits long, and I use this to seed the LCGs.
The initial 129 hex digit value will always be the same, but multiplying by the date_time ensures the final 144 hex digit value is always different. This randomising process can be called up to 10 million times per second without repeating.