In a large skillet, melt 2 tablespoons butter over medium heat. Add the meat, breaking it up into little pieces. Cook, stirring occasionally, until the liquid has been released and evaporates.
Stir in 1 cup hot water, half of the chopped onion, salt, red chili flakes, black pepper, cinnamon, and ginger. Decrease heat to medium and cook, stirring occasionally, for 30 minutes. Reduce heat to low. Add the remaining onion, parsley, and tomatoes. Cook for 10 minutes, stirring occasionally. Remove from heat and set aside. The meat should be slightly moist, not dry.
Preheat oven to 350 degrees Fahrenheit. Peel and thinly slice the potatoes. Heat a large skillet over medium heat and add a little of the remaining 1 tablespoon butter to the pan. Fry the potato slices in a single layer, a few at a time and not overcrowding them, until golden on both sides. Add a little more butter as needed.
Layer half of the fried potatoes in a large casserole dish.
In a small bowl, beat together the eggs, flour, parsley, dill, salt, and pepper. Pour half of the eggs over the layer of potatoes. Cover with the meat mixture and press down firmly.
Layer with the rest of the potatoes, slightly overlapping the slices. Cover with the rest of the beaten eggs.
Sprinkle the top evenly with the bread crumbs and bake in preheated oven for 30 minutes, until heated through.
Let sit for at least 10 minutes before cutting and serving.